package com.xoa.service.party;


import com.xoa.dao.party.VideoDeviceMapper;
import com.xoa.dao.party.VideoParentMapper;
import com.xoa.model.party.VideoDevice;
import com.xoa.model.party.VideoParent;
import com.xoa.util.ToJson;
import com.xoa.util.common.L;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * 创建作者:   牛江丽
 * 创建日期:   ${date} ${time}
 * 类介绍  :
 * 构造参数:
 */
@Service
public class VideoDeviceService {

    @Resource
    private VideoDeviceMapper videoDeviceMapper;
    @Resource
    private VideoParentMapper videoParentMapper;

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年11月9日 上午11:24:00
     * 方法介绍:   根据id查询设备信息
     * 参数说明:   @param id
     * 返回值说明:
     */
    public ToJson<VideoDevice> selDeviceById(Integer id){
        ToJson<VideoDevice> json = new ToJson<VideoDevice>(1, "error");
        try{
            VideoDevice videoDevice=videoDeviceMapper.selDeviceById(id);
            json.setObject(videoDevice);
            json.setMsg("ok");
            json.setFlag(0);
        }catch(Exception e){
            json.setMsg(e.getMessage());
            L.e("VideoDeviceService selDeviceById:"+e);
            e.printStackTrace();
        }
        return  json;
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年11月9日 上午11:26:00
     * 方法介绍:   查询所有设备信息
     * 参数说明:   @param id
     * 返回值说明:
     */
    public ToJson<VideoDevice> selAllVideoDevice(){
        ToJson<VideoDevice> json = new ToJson<VideoDevice>(1, "error");
        try{
            List<VideoDevice> deviceList=videoDeviceMapper.selAllVideoDevice();
            json.setObj(deviceList);
            json.setMsg("ok");
            json.setFlag(0);
        }catch(Exception e){
            json.setMsg(e.getMessage());
            L.e("VideoDeviceService selAllVideoDevice:"+e);
            e.printStackTrace();
        }
        return  json;
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年11月9日 上午11:38:00
     * 方法介绍:   添加设备
     * 参数说明:   @param record
     * 返回值说明:
     */
    public ToJson<VideoDevice> insertDevice(VideoDevice record){
        ToJson<VideoDevice> json = new ToJson<VideoDevice>(1, "error");
        try{
            record.setStatus("2");//启用
            record.setLoginDevice(record.getIp());
            int count=videoDeviceMapper.insertDevice(record);
            if(count>0){
                json.setMsg("ok");
                json.setFlag(0);
            }
        }catch(Exception e){
            json.setMsg(e.getMessage());
            L.e("VideoDeviceService insertDevice:"+e);
            e.printStackTrace();
        }
        return  json;
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年11月9日 上午11:30:00
     * 方法介绍:   更新设备信息
     * 参数说明:   @param record
     * 返回值说明:
     */
    public ToJson<VideoDevice> upDeviceById(VideoDevice record){
        ToJson<VideoDevice> json = new ToJson<VideoDevice>(1, "error");
        try{
            int count=videoDeviceMapper.upDeviceById(record);
            if(count>0){
                json.setMsg("ok");
                json.setFlag(0);
            }
        }catch(Exception e){
            json.setMsg(e.getMessage());
            L.e("VideoDeviceService upDeviceById:"+e);
            e.printStackTrace();
        }
        return  json;
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年11月9日 上午11:35:00
     * 方法介绍:   根据id删除设备
     * 参数说明:   @param id
     * 返回值说明:
     */
    public ToJson<VideoDevice> delDeviceById(Integer id){
        ToJson<VideoDevice> json = new ToJson<VideoDevice>(1, "error");
        try{
            int count=videoDeviceMapper.delDeviceById(id);
            if(count>0){
                json.setMsg("ok");
                json.setFlag(0);
            }
        }catch(Exception e){
            json.setMsg(e.getMessage());
            L.e("VideoDeviceService delDeviceById:"+e);
            e.printStackTrace();
        }
        return  json;
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年11月9日 上午11:26:00
     * 方法介绍:   根据条件查询设备信息
     * 参数说明:   @param id
     * 返回值说明:
     */
    public ToJson<VideoDevice> selDeviceByCond(VideoDevice videoDevice){
        ToJson<VideoDevice> json = new ToJson<VideoDevice>(1, "error");
        try{
            List<VideoDevice> deviceList=videoDeviceMapper.selDeviceByCond(videoDevice);
            json.setObj(deviceList);
            json.setMsg("ok");
            json.setFlag(0);
        }catch(Exception e){
            json.setMsg(e.getMessage());
            L.e("VideoDeviceService selDeviceByCond:"+e);
            e.printStackTrace();
        }
        return  json;
    }

    /**
     * 创建作者:   牛江丽
     * 创建日期:   2017年11月13日 上午11:30:00
     * 方法介绍:   修改设备状态
     * 参数说明:   @param record
     * 返回值说明:
     */
    public ToJson<VideoDevice> upVideoByStatus(VideoDevice record){
        ToJson<VideoDevice> json = new ToJson<VideoDevice>(1, "error");
        try{
            int count=videoDeviceMapper.upVideoByStatus(record);
           if(count>0){
               json.setMsg("ok");
               json.setFlag(0);
           }
        }catch(Exception e){
            json.setMsg(e.getMessage());
            L.e("VideoDeviceService upVideoByStatus:"+e);
            e.printStackTrace();
        }
        return  json;
    }


    public ToJson<VideoParent> insertVideoParent(VideoParent record){
        ToJson<VideoParent> json = new ToJson<VideoParent>(1, "error");
        try{
            int count=videoParentMapper.insertSelective(record);
            if(count>0){
                json.setObject(record);
                json.setMsg("ok");
                json.setFlag(0);
            }
        }catch(Exception e){
            json.setMsg(e.getMessage());
            L.e("VideoDeviceService insertDevice:"+e);
            e.printStackTrace();
        }
        return  json;
    }
    public ToJson<VideoParent> videoParentById(HttpServletRequest request){
        ToJson<VideoParent> json = new ToJson<VideoParent>(1, "error");

        List<VideoParent> videoParents=videoParentMapper.videoParentById();

        json.setObj(videoParents);
        json.setMsg("ok");
        json.setFlag(0);

        return  json;
    }



}
